Image data for texturing, which can be very large, is typically stored in resident memory of graphics hardware (e.g., graphics processing units (GPUs)) for use by the graphics hardware. Many GPUs implement some scheme of compression for the texture images, which may be hardware specific, allowing the GPU to read the compressed image directly from memory. For example, at run time, image data is encoded into a format that is compatible with a particular GPU and passed to GPU memory. The GPU can then decode and render the image data.